package org.mcpro.common.util;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.apache.log4j.Logger;

/**
 * 提供一些常用的数据库操作和判断
 * 
 * @author 乔继承
 * @date 2014年1月18日 下午2:54:24 
 *
 */
public class DBUtil {
	private static Logger logger = Logger.getLogger(DBUtil.class);
	private static DataSource dataSource;

	public DataSource getDataSource() {
		return dataSource;
	}

	public void setDataSource(DataSource dataSource) {
		this.dataSource = dataSource;
	}
	
	/**
	 * 根据表名判断数据库中是否存在
	 * @param tableName
	 * @return
	 * @author 乔继承
	 * @return 
	 * @date 2014年3月3日 下午11:49:57
	 */
	static boolean isTableExist(String tableName) {
		boolean isExist=false;
		if(ObjectUtil.isEmpty(tableName)){
			return isExist;
		}
		Connection conn=null;
		try {
			conn=dataSource.getConnection();
			DatabaseMetaData meta = conn.getMetaData();
			ResultSet rs = meta.getTables(null , null, tableName, null);
			if(rs.next()){
				isExist=true;
			}
		} catch (SQLException e) {
			e.printStackTrace();
			logger.error("查询数据库表"+tableName+"是否存在时发生异常", e);
		}
		return isExist;
	}
}
